package com.hengtongxing.hejiayun.mine.model;


import com.hengtongxing.hejiayun.base.DataCallBack;
import com.hengtongxing.hejiayun.bean.AddressListBean;
import com.hengtongxing.hejiayun.bean.AliPayDataBean;
import com.hengtongxing.hejiayun.bean.BaseResponseBean;
import com.hengtongxing.hejiayun.bean.BuildingListBean;
import com.hengtongxing.hejiayun.bean.CommunityListBean;
import com.hengtongxing.hejiayun.bean.DirectorListBean;
import com.hengtongxing.hejiayun.bean.ExchangeDetailsBean;
import com.hengtongxing.hejiayun.bean.ExchangeListBean;
import com.hengtongxing.hejiayun.bean.FloorListBean;
import com.hengtongxing.hejiayun.bean.HouseListBean;
import com.hengtongxing.hejiayun.bean.MyHouseListBean;
import com.hengtongxing.hejiayun.bean.MyPlanListBean;
import com.hengtongxing.hejiayun.bean.OrderCountBean;
import com.hengtongxing.hejiayun.bean.OrderDetailsBean;
import com.hengtongxing.hejiayun.bean.OrderListBean;
import com.hengtongxing.hejiayun.bean.PlanConfigListBean;
import com.hengtongxing.hejiayun.bean.PosterListBean;
import com.hengtongxing.hejiayun.bean.RechargeConfigBean;
import com.hengtongxing.hejiayun.bean.RefundAmountBean;
import com.hengtongxing.hejiayun.bean.RefundBean;
import com.hengtongxing.hejiayun.bean.RefundRecordBean;
import com.hengtongxing.hejiayun.bean.SginConfigBean;
import com.hengtongxing.hejiayun.bean.SginTaskBean;
import com.hengtongxing.hejiayun.bean.SignInDayBean;
import com.hengtongxing.hejiayun.bean.SignIsBean;
import com.hengtongxing.hejiayun.bean.UnitListBean;
import com.hengtongxing.hejiayun.bean.UserInfoBean;

import java.util.List;

public interface IMineModel {
    /**
     * 个人中心
     */
    void requestMine(DataCallBack<UserInfoBean> callBack);

    /**
     * 个人中心
     */
    void requestOrderCount(DataCallBack<OrderCountBean> callBack);

    /**
     * 小区列表
     */
    void requestCommunityList(DataCallBack<CommunityListBean> callBack);

    /**
     * 楼栋列表
     */
    void requestBuildingList(String cid, DataCallBack<BuildingListBean> callBack);

    /**
     * 单元列表
     */
    void requestUnitList(String cid, String bid, DataCallBack<UnitListBean> callBack);

    /**
     * 楼层列表
     */
    void requestFloorList(String cid, String bid, String uid, DataCallBack<FloorListBean> callBack);

    /**
     * 门牌号列表
     */
    void requestHouseList(String cid, String bid, String uid, String fid, DataCallBack<HouseListBean> callBack);

    /**
     * 添加我的房屋
     */
    void requestHouseAdd(String cid, String bid, String uid, String fid, String hid, String is_def, DataCallBack<BaseResponseBean> callBack);

    /**
     * 编辑我的房屋
     */
    void requestUpMyHouse(String id, String cid, String bid, String uid, String fid, String hid, String is_def, DataCallBack<BaseResponseBean> callBack);

    /**
     * 删除我的房屋
     */
    void requestDelHouses(String id, DataCallBack<BaseResponseBean> callBack);

    /**
     * 我的房屋
     */
    void requestMyHouse(DataCallBack<MyHouseListBean> callBack);

    /**
     * 意见反馈
     */
    void requestFeedBack(String content, DataCallBack<BaseResponseBean> callBack);

    /**
     * 登出
     */
    void requestLoginOut(String id, DataCallBack<BaseResponseBean> callBack);


    /**
     * 注销
     */
    void requestLoginOutAccount(DataCallBack<BaseResponseBean> callBack);

    /**
     * 解绑DeviceId
     */
    void requestUnBindDeviceId(String client_no, DataCallBack<BaseResponseBean> callBack);

    /**
     * 地址删除
     */
    void requestAddressDelete(String id, DataCallBack<BaseResponseBean> callBack);

    /**
     * 地址添加
     */
    void requestAddressAdd(String name, String mobile, String province, String city, String area, String address, DataCallBack<BaseResponseBean> callBack);

    /**
     * 地址编辑
     */
    void requestAddressEdit(String id, String name, String mobile, String province, String city, String area, String address, DataCallBack<BaseResponseBean> callBack);

    /**
     * 地址列表
     */
    void requestAddressIndex(int page, DataCallBack<AddressListBean> callBack);

    /**
     * 我的订单
     */
    void requestMyOrderData(int page, String select_type, String order_status, DataCallBack<OrderListBean> callBack);

    /**
     * 订单详情
     */
    void requestOrderShow(String id, String select_type, DataCallBack<OrderDetailsBean> callBack);

    /**
     * 查询退款金额
     */
    void returnGoodsMoney(int id, DataCallBack<RefundAmountBean> callBack);

    /**
     * 退货
     *
     * @param order_goods_id
     * @param callBack
     */
    void returnGoods(int order_goods_id, String goods_status, String remark, String refund_amount, String delivery_no, String depict, List<String> pic, DataCallBack<RefundBean> callBack);
    /**
     * 查询退款记录
     */
    void rundsGoodsLog(int id, DataCallBack<RefundRecordBean> callBack);

    /**
     * 补单
     * @param id
     * @param callBack
     */
    void addDeliveryNo(int id,String delivery_no, DataCallBack<AliPayDataBean> callBack);
    /**
     * 订单详情 赠送兑换
     */
    void requestExchangeOrderShow(String id, DataCallBack<ExchangeDetailsBean> callBack);

    /**
     * 兑换记录
     */
    void requestAgentExchangeDeviceIndex(int page, String status, DataCallBack<ExchangeListBean> callBack);

    /**
     * 转上级
     */
    void requestAgentTurnParent(String id, DataCallBack<BaseResponseBean> callBack);

    /**
     * 董事列表
     */
    void requestAgentDirector(int page, DataCallBack<DirectorListBean> callBack);

    /**
     * 签到
     */
    void requestSignAdd(DataCallBack<BaseResponseBean> callBack);

    /**
     * 签到天数
     */
    void requestSignRowSignDay(DataCallBack<SignInDayBean> callBack);

    /**
     * 签到天数
     */
    void requestIsSign(DataCallBack<SignIsBean> callBack);

    /**
     * 获取戒烟计划配置
     */
    void requestPlanConfig(DataCallBack<PlanConfigListBean> callBack);

    /**
     * 我的戒烟计划
     */
    void requestMyPlanList(int page, DataCallBack<MyPlanListBean> callBack);

    /**
     * 创建戒烟计划
     */
    void requestPlanCreate(String plan_id, String amount, DataCallBack<BaseResponseBean> callBack);

    /**
     * 申请结束
     */
    void requestPlanApply(String agent_plan_id, DataCallBack<BaseResponseBean> callBack);

    /**
     * 微海报
     */
    void requestPosterIndex(DataCallBack<PosterListBean> callBack);

    /**
     * 充值配置
     */
    void requestRechargeConfigIndex(DataCallBack<RechargeConfigBean> callBack);

    /**
     * 签到配置
     */
    void requestSignConfigIndex(DataCallBack<SginConfigBean> callBack);

    /**
     * 新手任务
     */
    void requestSignTaskIndex(DataCallBack<SginTaskBean> callBack);

    /**
     * 新手任务  微信朋友圈
     */
    void requestTaskWXTask(DataCallBack<BaseResponseBean> callBack);
}
